package com.company.design.introduction;

/**
 * @author yingfing
 * @create 2020--09--26 16:58
 * @describe
 */
public class Main {

    /**
     * 设计模式分为三大类：
     * 1. 创建型设计模式
     * 共5种，工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
     * 2. 结构型设计模式
     * 共7种，适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、亨元模式
     * 3. 行为型设计模式
     * 共11种，
     * 3.1 父类与子类：策略模式、模板方法模式
     * 3.2 两个类之间：观察者模式、迭代器模式、责任链模式、命令模式
     * 3.3 类的状态：备忘录模式、状态模式
     * 3.4 通过中间类：访问者模式、中介者模式、解释器模式
     */
    public static void main(String[] args) throws Exception {
        // new Object
        // Factory Method -- Bike -- How to new {MoBike, OfoBike}
        // Abstract Factory -- Product -- How to create {Bike Produce Line, Car Produce Line}
        // Singleton -- Bike -- How to new unique Object
        // Builder -- Bike -- Hide inner desgin and show multi Sub Object {Builder -> Bike{IFrame, ISeat, ITrie}}
        // Prototype -- Bike -- How to clone new Object {Cloneable, Serializable}
    }
}
